package me.sdevil507.biz.common.sms.captcha.service;


import me.sdevil507.biz.common.sms.captcha.enums.CaptchaType;

import javax.servlet.http.HttpServletRequest;

/**
 * 短信操作接口
 *
 * @author sdevil507
 */
public interface CaptchaService {

    /**
     * 发送验证码
     *
     * @param type        验证码类型
     * @param phoneNumber 手机号
     * @return 执行反馈
     */
    boolean send(CaptchaType type, String phoneNumber);

    /**
     * 校验验证码
     *
     * @param type        验证码类型
     * @param phoneNumber 手机号码
     * @param code        验证码
     * @return 执行反馈
     */
    boolean check(CaptchaType type, String phoneNumber, String code);

    /**
     * 移除验证码
     *
     * @param type        验证码类型
     * @param phoneNumber 手机号码
     * @param code        验证码
     */
    void remove(CaptchaType type, String phoneNumber, String code);

    /**
     * @ClassName CaptchaService
            * @Description : 功能说明  发送邀请短信
            *
     * @param phoneNumber  用户手机号码
     * @param userName      用户名称
     * @param orgName       组织名称
     * @param inviteUrl     邀请链接
            * @Return : java.lang.Boolean
            * @Author : kzl
            * @Date : 2020/8/25 11:13
    */
    Boolean sendInvatiMessage( String phoneNumber,String userName,String orgName,String inviteUrl,Long inviteId);


    /**
     *
     * @param sendPhoneNumber
     * @param contactPhoneNumber
     * @param userName 用户名
     * @param deptName 部门
     * @param job  职位
     * @param prodType 成果类型
     * @param prodName 成果名称
     * @return
     */
    Boolean sendFruitLinkMessage(String sendUserName, String sendPhoneNumber, String contactPhoneNumber, String userName,String deptName,String job,String prodType,String prodName);

    String getImgCaptchaKey(HttpServletRequest request);
}
